home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -in_the_mag- / reader_requests / notes / deutsch / bassschlüssel.file < prev    next >
Text File  |  2000-02-23  |  35KB  |  1,223 lines

  1. /* Unterprogramm zu Noten.pprx */
  2.  
  3. signal on halt
  4. signal on break_c
  5. signal on break_e
  6. signal on break_d
  7. call ppm_SetStyle(N)
  8. call ppm_SetMagMode(180)
  9. call ppm_UpdateScreen()
  10.  
  11. noteneingabe:
  12.     /* Kleinster Notenabstand */
  13.  
  14.     xgrdform = "(1,2,4,8 oder 16)"
  15.     xgrd = ppm_GetForm("Bitte für den kleinsten Notenwert eingeben ...(nichts=ABBRUCH)", 3, xgrdform)
  16.     if xgrd == '' then exit_msg("Abbruch")
  17.     select
  18.      when xgrd == '1' then xg =0.7
  19.      when xgrd == '2' then xg =1.4
  20.      when xgrd == '4' then xg =2.8
  21.      when xgrd == '8' then xg =5.6
  22.      when xgrd == '16' then xg =11.2
  23.      otherwise noteneingabe()
  24.     end
  25.  
  26.    /* Punktgröße der Noten */
  27.    notepkt = 26
  28.    call ppm_SetJustification(0)
  29.  
  30.    zz = 0 /* Zeilenzähler */
  31.    notex = 2.5
  32.    page = ppm_CurrentPage()
  33.  
  34. pfad:
  35.    do
  36.            choose=ppm_Inform(2,"Auswahl des Notenfiles oder Abbruch ...", "Abbruch","File")
  37.            if choose == 0 then exit_msg("Abbruch")
  38.            eingabe = ppm_GetFileName("Bitte Notenscriptfile wählen ...", "Noten:")
  39.            res = OPEN(notenfile, eingabe, 'R')
  40.            if res == 0 then
  41.              do
  42.                  call ppm_inform(1,"Fehler in der Eingabe, oder File existiert nicht !!!","OK")
  43.                  pfad()
  44.              end
  45.            call ppm_ShowStatus("OK, ich arbeite ...")
  46.            auslesen(notenfile)
  47.    end
  48.  
  49.     /* x-Abstände der Noten zueinander */
  50. auslesen:
  51.         do
  52.           parse arg file
  53.           noten = READCH(file, 4000)
  54.           i=1
  55.           do forever
  56.             nw = word(noten, i)
  57.             nn = word(noten, i+1)
  58.             al = word(noten, i+2)
  59.             if nw == 'P' then nw = 'p'
  60.             if nw == 'D' then nw = 'd'
  61.             if nw == 'L' then nw = 'l'
  62.             if nw == 'T' then nw = 't'
  63.             if nn == 'T' then nn = 't'
  64.             if nw == 'J' then nw = 'j'
  65.             if nw == 'E' then nw = 'e'
  66.             if al == 'A' then al = 'a'
  67.             call auswahl()
  68.             i=i+3
  69.           end
  70.         end
  71.  
  72. auswahl:
  73. do
  74.     select
  75.       when nw == 'j' then do
  76.                           zz = 0   /* Zeilenzähler */
  77.                           notex = 2.5
  78.                           return
  79.                           end
  80.       when nw == 'e' then
  81.         do
  82.             call ppm_ClearStatus()
  83.             exit_msg("Geschafft!")
  84.         end
  85.       when nw == 's' then
  86.           do
  87.           xw = xg/16
  88.           nw='x'
  89.           yv = 0
  90.           end
  91.       when nw  == 'S' then
  92.           do
  93.           xw = xg/16
  94.           nw='X'
  95.           yv = 0.47
  96.           end
  97.       when nw == 'a' then
  98.           do
  99.           xw = xg/8
  100.           nw='e'
  101.           yv = 0
  102.           end
  103.       when nw == 'A' then
  104.           do
  105.           xw = xg/8
  106.           nw='E'
  107.           yv = 0.47
  108.           end
  109.       when nw == 'v' then
  110.           do
  111.           xw = xg/4
  112.           nw='q'
  113.           yv = 0
  114.           end
  115.       when nw == 'V' then
  116.           do
  117.           xw = xg/4
  118.           nw='Q'
  119.           yv = 0.47
  120.           end
  121.       when nw == 'h' then
  122.           do
  123.           xw = xg/2
  124.           yv = 0
  125.           end
  126.       when nw == 'H' then
  127.           do
  128.           xw = xg/2
  129.           yv = 0.47
  130.           end
  131.       when nw == 'g' then
  132.           do
  133.           xw = xg
  134.           nw='w'
  135.           yv = 0
  136.           end
  137.       when nw == 'G' then
  138.           do
  139.           xw = xg
  140.           nw='W'
  141.           yv = 0.47
  142.           end
  143.  
  144.       when nw == 'pk' then
  145.           do
  146.             call ppm_SetSize(25)
  147.             box#id = ppm_CreateBox(notex-xw+0.4, yw+zz+0.26-yv, 0.3, 0.9, 0)
  148.             call ppm_SetSize(20)
  149.             call ppm_TextIntoBox(box#id, 'd')
  150.  
  151.              select
  152.                  when nn == '1' then
  153.                  do
  154.                   xw = xg
  155.                   notex = notex+xw
  156.                  end
  157.                  when nn == '2' then
  158.                  do
  159.                   xw = xg/2
  160.                   notex = notex+xw
  161.                  end
  162.                  when nn == '4' then
  163.                  do
  164.                   xw = xg/4
  165.                   notex = notex+xw
  166.                  end
  167.                  when nn == '8' then
  168.                  do
  169.                   xw = xg/8
  170.                   notex = notex+xw
  171.                  end
  172.                  when nn == '16' then
  173.                  do
  174.                   xw  = xg/16
  175.                   notex = notex+xw
  176.                  end
  177.                  when nn == 't' then
  178.                  do
  179.                   xw  = 0.2
  180.                   notex = notex+xw
  181.                  end
  182.                  otherwise
  183.                   do
  184.                    call ppm_ClearStatus()
  185.                    exit_msg("Da war ein Fehler")
  186.                   end
  187.              end
  188.            if notex >=18.7 then
  189.                do
  190.                  notex = 2.5
  191.                  zz = zz + 4
  192.                end
  193.            return
  194.           end
  195.  
  196.       when nw == 'PK' then
  197.           do
  198.             call ppm_SetSize(25)
  199.             box#id = ppm_CreateBox(notex-xw+0.4, yw+zz+0.26-yv, 0.3, 0.9, 0)
  200.             call ppm_SetSize(20)
  201.             call ppm_TextIntoBox(box#id, 'd')
  202.            select
  203.                when nn == '1' then
  204.                 do
  205.                  xw = xg
  206.                  notex = notex+xw
  207.                 end
  208.                when nn == '2' then
  209.                 do
  210.                  xw = xg/2
  211.                  notex = notex+xw
  212.                 end
  213.                when nn == '4' then
  214.                 do
  215.                  xw = xg/4
  216.                  notex = notex+xw
  217.                 end
  218.                when nn == '8' then
  219.                 do
  220.                  xw = xg/8
  221.                  notex = notex+xw
  222.                 end
  223.                when nn == '16' then
  224.                 do
  225.                  xw  = xg/16
  226.                  notex = notex+xw
  227.                 end
  228.                when nn == 't' then
  229.                 do
  230.                  xw  = 0.2
  231.                  notex = notex+xw
  232.                 end
  233.                otherwise
  234.                do
  235.                 call ppm_ClearStatus()
  236.                 exit_msg("Da war ein Fehler")
  237.                end
  238.            end
  239.            if notex >=18.7 then
  240.              do
  241.                notex = 2.5
  242.                zz = zz + 4
  243.              end
  244.            return
  245.           end
  246.  
  247.  
  248.       /* Taktstrich */
  249.       when nw == 't' then
  250.           do
  251.            call ppm_SetLineWeight(0.25)
  252.            call ppm_DrawLine(notex, 4+zz, notex, 4.8+zz)
  253.            notex = notex+0.2
  254.            return
  255.           end
  256.  
  257.  
  258.       when nw == 'p' | when nw == 'P' then
  259.       do
  260. pausenwert:
  261.         x = notex
  262.         select
  263.             when nn == '1' then do
  264.  
  265.                 y = 4.29+zz
  266.                 call ppm_SetLineWeight(4)
  267.                 call ppm_DrawLine(x, y, x+0.4, y)
  268.                 call ppm_SetLineWeight(0.25)
  269.                 xw = xg
  270.                 notex = notex+xw
  271.             end
  272.  
  273.             when nn == '2' then do
  274.  
  275.                 y = 4.33+zz
  276.                 call ppm_SetLineWeight(4)
  277.                 call ppm_DrawLine(x, y, x+0.4, y)
  278.                 call ppm_SetLineWeight(0.25)
  279.                 xw = xg/2
  280.                 notex = notex+xw
  281.             end
  282.  
  283.             when nn == '4' then do
  284.  
  285.                 y = 4.07+zz
  286.                 Pbox = ppm_CreateBox(x, y, 0.59, 0.86, 0)
  287.                 boxnm = ppm_DocNextBox(Pbox)
  288.                 call ppm_DeleteContents(boxnm)
  289.                 call ppm_ImportGraphic(boxnm, 'Genies:noten_pausen/viertelPause', pause)
  290.                 xw = xg/4
  291.                 notex = notex+xw
  292.             end
  293.  
  294.             when nn == '8' then do
  295.  
  296.                 y = 4.21+zz
  297.                 Pbox = ppm_CreateBox(x, y, 0.27, 0.42, 0)
  298.                 boxnm = ppm_DocNextBox(Pbox)
  299.                 call ppm_DeleteContents(boxnm)
  300.                 call ppm_ImportGraphic(boxnm, 'Genies:noten_pausen/achtelPause', pause)
  301.                 xw = xg/8
  302.                 notex = notex+xw
  303.             end
  304.  
  305.             when nn == '16' then do
  306.  
  307.                 y = 4.21+zz
  308.                 Pbox = ppm_CreateBox(x, y, 0.27, 0.42, 0)
  309.                 boxnm = ppm_DocNextBox(Pbox)
  310.                 call ppm_DeleteContents(boxnm)
  311.                 call ppm_ImportGraphic(boxnm, 'Genies:noten_pausen/sechzehntelPause', pause)
  312.                 xw = xg/16
  313.                 notex = notex+xw
  314.             end
  315.         otherwise
  316.                do
  317.                 call ppm_ClearStatus()
  318.                 exit_msg("Da war ein Fehler")
  319.                end
  320.         end
  321.         if notex >=18.7 then
  322.           do
  323.             notex = 2.5
  324.             zz = zz + 4
  325.           end
  326.         return
  327.       end
  328.  
  329.     /* Freiräume "space" */
  330.  
  331.       when nw == 'l' then
  332.         do
  333.  
  334.            /* wert = ppm_GetForm("1/1 1/2 1/4 1/8 1/16 ...?", 2, "1 , 2, 4, 8, 16") */
  335.            select
  336.                when nn == '1' then
  337.                do
  338.                 xw = xg
  339.                 notex = notex+xw
  340.                end
  341.                when nn == '2' then
  342.                do
  343.                 xw = xg/2
  344.                 notex = notex+xw
  345.                end
  346.                when nn == '4' then
  347.                do
  348.                 xw = xg/4
  349.                 notex = notex+xw
  350.                end
  351.                when nn == '8' then
  352.                do
  353.                 xw = xg/8
  354.                 notex = notex+xw
  355.                end
  356.                when nn == '16' then
  357.                do
  358.                 xw  = xg/16
  359.                 notex = notex+xw
  360.                end
  361.                when nn == 't' then
  362.                do
  363.                 xw  = 0.2
  364.                 notex = notex+xw
  365.                end
  366.                when nn == 0 then do
  367.                end
  368.                otherwise
  369.                do
  370.                 call ppm_ClearStatus()
  371.                 exit_msg("Da war ein Fehler")
  372.                end
  373.            end
  374.            if notex >=18.7 then
  375.              do
  376.                notex = 2.5
  377.                zz = zz + 4
  378.              end
  379.            return
  380.         end
  381.       when nw == 'ENDE' then nw = 'ende'
  382.       when nw == 'ende' then
  383.         do
  384.             call ppm_ClearStatus()
  385.             exit_msg("Geschafft!")
  386.         end
  387.       otherwise
  388.                do
  389.                 call ppm_ClearStatus()
  390.                 exit_msg("Da war ein Fehler")
  391.                end
  392.     end
  393.  
  394.         /* y-Raster der Noten - Notenhälse nach oben (y-Position der Box) */
  395.  
  396.     call ppm_SetLineWeight(0.25)
  397.  
  398.     select
  399.  
  400.         when nn=='g#3'  then
  401.         do
  402.             yw = 2.745
  403.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  404.             call ppm_SetSize(20)
  405.             call ppm_TextIntoBox(box#id, 's')
  406.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  407.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  408.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  409.         end
  410.  
  411.         when nn=='g3'  then
  412.         do
  413.             yw = 2.745
  414.             if al == 'a' then call auflhoch()
  415.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  416.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  417.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  418.         end
  419.  
  420.         when nn=='gb3' then
  421.         do
  422.             yw = 2.745
  423.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  424.             call ppm_SetSize(20)
  425.             call ppm_TextIntoBox(box#id, 'f')
  426.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  427.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  428.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  429.         end
  430.  
  431.         when nn=='f#3'  then
  432.         do
  433.             yw = 2.845
  434.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  435.             call ppm_SetSize(20)
  436.             call ppm_TextIntoBox(box#id, 's')
  437.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  438.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  439.         end
  440.  
  441.         when nn=='f3'  then
  442.         do
  443.             yw = 2.845
  444.             if al == 'a' then call auflhoch()
  445.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  446.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  447.         end
  448.  
  449.         when nn=='e#3'  then
  450.         do
  451.             yw = 2.945
  452.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  453.             call ppm_SetSize(20)
  454.             call ppm_TextIntoBox(box#id, 's')
  455.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  456.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  457.         end
  458.  
  459.         when nn=='e3'  then
  460.         do
  461.             yw = 2.945
  462.             if al == 'a' then call auflhoch()
  463.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  464.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  465.         end
  466.  
  467.         when nn=='eb3' then
  468.         do
  469.             yw = 2.945
  470.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  471.             call ppm_SetSize(20)
  472.             call ppm_TextIntoBox(box#id, 'f')
  473.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  474.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  475.         end
  476.  
  477.         when nn=='d#3'  then
  478.         do
  479.             yw = 3.045
  480.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  481.             call ppm_SetSize(20)
  482.             call ppm_TextIntoBox(box#id, 's')
  483.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  484.         end
  485.  
  486.         when nn=='d3' then
  487.         do
  488.             yw = 3.045
  489.             if al == 'a' then call auflhoch()
  490.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  491.         end
  492.  
  493.         when nn=='db3'    then
  494.         do
  495.             yw = 3.045
  496.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  497.             call ppm_SetSize(20)
  498.             call ppm_TextIntoBox(box#id, 'f')
  499.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  500.         end
  501.  
  502.         when nn=='c#3'    then
  503.         do
  504.             yw = 3.145
  505.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  506.             call ppm_SetSize(20)
  507.             call ppm_TextIntoBox(box#id, 's')
  508.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  509.         end
  510.  
  511.         when nn=='c3'     then
  512.         do
  513.             yw = 3.145
  514.             if al == 'a' then call auflhoch()
  515.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  516.         end
  517.  
  518.         when nn=='h2'     then
  519.         do
  520.             yw = 3.245
  521.             if al == 'a' then call auflhoch()
  522.         end
  523.         when nn=='b2'     then
  524.         do
  525.             yw = 3.245
  526.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  527.             call ppm_SetSize(20)
  528.             call ppm_TextIntoBox(box#id, 'f')
  529.         end
  530.  
  531.         when nn=='a#2'    then
  532.         do
  533.             yw = 3.345
  534.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  535.             call ppm_SetSize(20)
  536.             call ppm_TextIntoBox(box#id, 's')
  537.         end
  538.  
  539.         when nn=='a2'     then
  540.         do
  541.             yw = 3.345
  542.             if al == 'a' then call auflhoch()
  543.         end
  544.         when nn=='ab2'    then
  545.         do
  546.             yw = 3.345
  547.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  548.             call ppm_SetSize(20)
  549.             call ppm_TextIntoBox(box#id, 'f')
  550.         end
  551.  
  552.         when nn=='g#2'    then
  553.         do
  554.             yw = 3.445
  555.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  556.             call ppm_SetSize(20)
  557.             call ppm_TextIntoBox(box#id, 's')
  558.         end
  559.  
  560.         when nn=='g2'     then
  561.         do
  562.             yw = 3.445
  563.             if al == 'a' then call auflhoch()
  564.         end
  565.         when nn=='gb2'    then
  566.         do
  567.             yw = 3.445
  568.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  569.             call ppm_SetSize(20)
  570.             call ppm_TextIntoBox(box#id, 'f')
  571.         end
  572.  
  573.         when nn=='f#2'    then
  574.         do
  575.             yw = 3.545
  576.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  577.             call ppm_SetSize(20)
  578.             call ppm_TextIntoBox(box#id, 's')
  579.         end
  580.  
  581.         when nn=='f2' then
  582.         do
  583.             yw = 3.545
  584.             if al == 'a' then call auflhoch()
  585.         end
  586.         when nn=='e#2'  then
  587.         do
  588.             yw = 3.645
  589.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  590.             call ppm_SetSize(20)
  591.             call ppm_TextIntoBox(box#id, 's')
  592.         end
  593.         when nn=='e2'     then
  594.         do
  595.             yw = 3.645
  596.             if al == 'a' then call auflhoch()
  597.         end
  598.         when nn=='eb2'    then
  599.         do
  600.             yw = 3.645
  601.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  602.             call ppm_SetSize(20)
  603.             call ppm_TextIntoBox(box#id, 'f')
  604.         end
  605.  
  606.         when nn=='d#2'    then
  607.         do
  608.             yw = 3.745
  609.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  610.             call ppm_SetSize(20)
  611.             call ppm_TextIntoBox(box#id, 's')
  612.         end
  613.  
  614.         when nn=='d2'     then
  615.         do
  616.             yw = 3.745
  617.             if al == 'a' then call auflhoch()
  618.         end
  619.         when nn=='db2'    then
  620.         do
  621.             yw = 3.745
  622.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  623.             call ppm_SetSize(20)
  624.             call ppm_TextIntoBox(box#id, 'f')
  625.         end
  626.  
  627.         when nn=='c#2'    then
  628.         do
  629.             yw = 3.845
  630.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  631.             call ppm_SetSize(20)
  632.             call ppm_TextIntoBox(box#id, 's')
  633.         end
  634.  
  635.         when nn=='c2'     then
  636.         do
  637.             yw = 3.845
  638.             if al == 'a' then call auflhoch()
  639.         end
  640.         when nn=='h1'     then
  641.         do
  642.             yw = 3.945
  643.             if al == 'a' then call auflhoch()
  644.         end
  645.         when nn=='b1'     then
  646.         do
  647.             yw = 3.945
  648.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  649.             call ppm_SetSize(20)
  650.             call ppm_TextIntoBox(box#id, 'f')
  651.         end
  652.  
  653.         when nn=='a#1'    then
  654.         do
  655.             yw = 4.045
  656.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  657.             call ppm_SetSize(20)
  658.             call ppm_TextIntoBox(box#id, 's')
  659.         end
  660.  
  661.         when nn=='a1'     then
  662.         do
  663.             yw = 4.045
  664.             if al == 'a' then call auflhoch()
  665.         end
  666.         when nn=='ab1'    then
  667.         do
  668.             yw = 4.045
  669.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  670.             call ppm_SetSize(20)
  671.             call ppm_TextIntoBox(box#id, 'f')
  672.         end
  673.  
  674.         when nn=='g#1'    then
  675.         do
  676.             yw = 4.145
  677.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  678.             call ppm_SetSize(20)
  679.             call ppm_TextIntoBox(box#id, 's')
  680.         end
  681.  
  682.         when nn=='g1'     then
  683.         do
  684.             yw = 4.145
  685.             if al == 'a' then call auflhoch()
  686.         end
  687.         when nn=='gb1'    then
  688.         do
  689.             yw = 4.145
  690.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  691.             call ppm_SetSize(20)
  692.             call ppm_TextIntoBox(box#id, 'f')
  693.         end
  694.  
  695.         when nn=='f#1'    then
  696.         do
  697.             yw = 4.245
  698.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  699.             call ppm_SetSize(20)
  700.             call ppm_TextIntoBox(box#id, 's')
  701.         end
  702.  
  703.         when nn=='f1'     then
  704.         do
  705.             yw = 4.245
  706.             if al == 'a' then call auflhoch()
  707.         end
  708.  
  709.         when nn=='e#1'  then
  710.         do
  711.             yw = 4.345
  712.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  713.             call ppm_SetSize(20)
  714.             call ppm_TextIntoBox(box#id, 's')
  715.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  716.         end
  717.         when nn=='e1' then
  718.         do
  719.             yw = 4.345
  720.             if al == 'a' then call auflhoch()
  721.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  722.         end
  723.  
  724.         when nn=='eb1'  then
  725.         do
  726.             yw = 4.345
  727.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  728.             call ppm_SetSize(20)
  729.             call ppm_TextIntoBox(box#id, 'f')
  730.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  731.         end
  732.  
  733.         when nn=='d#1'  then
  734.         do
  735.             yw = 4.445
  736.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  737.             call ppm_SetSize(20)
  738.             call ppm_TextIntoBox(box#id, 's')
  739.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  740.         end
  741.  
  742.         when nn=='d1'  then
  743.         do
  744.             yw = 4.445
  745.             if al == 'a' then call auflhoch()
  746.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  747.         end
  748.  
  749.         when nn=='db1' then
  750.         do
  751.             yw = 4.445
  752.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.21, 0.35, 0.75, 0)
  753.             call ppm_SetSize(20)
  754.             call ppm_TextIntoBox(box#id, 'f')
  755.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  756.         end
  757.  
  758.         when nn=='c#1'  then
  759.         do
  760.             yw = 4.545
  761.             box#id = ppm_CreateBox(notex-0.22, yw+zz+0.32, 0.35, 0.75, 0)
  762.             call ppm_SetSize(20)
  763.             call ppm_TextIntoBox(box#id, 's')
  764.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  765.             call ppm_DrawLine(notex, zz+5.2, (notex+0.4), zz+5.2)
  766.         end
  767.  
  768.         when nn=='c1'  then
  769.         do
  770.             yw = 4.545
  771.             if al == 'a' then call auflhoch()
  772.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  773.             call ppm_DrawLine(notex, zz+5.2, (notex+0.4), zz+5.2)
  774.         end
  775.  
  776.     /* y-Raster der Noten - Notenhälse nach unten */
  777.  
  778.         when nn=='G#3'  then
  779.         do
  780.             yw = 3.22
  781.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  782.             call ppm_SetSize(20)
  783.             call ppm_TextIntoBox(box#id, 's')
  784.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  785.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  786.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  787.         end
  788.  
  789.         when nn=='G3'  then
  790.         do
  791.             yw = 3.22
  792.             if al == 'a' then call aufltief()
  793.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  794.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  795.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  796.         end
  797.  
  798.         when nn=='GB3' then nn = 'Gb3'
  799.         when nn=='Gb3' then
  800.         do
  801.             yw = 3.22
  802.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  803.             call ppm_SetSize(20)
  804.             call ppm_TextIntoBox(box#id, 'f')
  805.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  806.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  807.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  808.         end
  809.  
  810.         when nn=='F#3'  then
  811.         do
  812.             yw = 3.32
  813.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  814.             call ppm_SetSize(20)
  815.             call ppm_TextIntoBox(box#id, 's')
  816.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  817.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  818.         end
  819.  
  820.         when nn=='F3'  then
  821.         do
  822.             yw = 3.32
  823.             if al == 'a' then call aufltief()
  824.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  825.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  826.         end
  827.  
  828.         when nn=='E#3'  then
  829.         do
  830.             yw = 3.42
  831.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  832.             call ppm_SetSize(20)
  833.             call ppm_TextIntoBox(box#id, 's')
  834.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  835.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  836.         end
  837.  
  838.         when nn=='E3'  then
  839.         do
  840.             yw = 3.42
  841.             if al == 'a' then call aufltief()
  842.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  843.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  844.         end
  845.  
  846.         when nn=='EB3' then nn = 'Eb3'
  847.         when nn=='Eb3' then
  848.         do
  849.             yw = 3.42
  850.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  851.             call ppm_SetSize(20)
  852.             call ppm_TextIntoBox(box#id, 'f')
  853.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  854.             call ppm_DrawLine(notex, zz+3.6, (notex+0.4), zz+3.6)
  855.         end
  856.  
  857.         when nn=='D#3'  then
  858.         do
  859.             yw = 3.52
  860.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  861.             call ppm_SetSize(20)
  862.             call ppm_TextIntoBox(box#id, 's')
  863.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  864.         end
  865.  
  866.         when nn=='D3' then
  867.         do
  868.             yw = 3.52
  869.             if al == 'a' then call aufltief()
  870.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  871.         end
  872.  
  873.         when nn=='DB3' then nn = 'Db3'
  874.         when nn=='Db3' then
  875.         do
  876.             yw = 3.52
  877.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  878.             call ppm_SetSize(20)
  879.             call ppm_TextIntoBox(box#id, 'f')
  880.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  881.         end
  882.  
  883.         when nn=='C#3'    then
  884.         do
  885.             yw = 3.62
  886.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  887.             call ppm_SetSize(20)
  888.             call ppm_TextIntoBox(box#id, 's')
  889.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  890.         end
  891.  
  892.         when nn=='C3'     then
  893.         do
  894.             yw = 3.62
  895.             if al == 'a' then call aufltief()
  896.             call ppm_DrawLine(notex, zz+3.8, (notex+0.4), zz+3.8)
  897.         end
  898.  
  899.         when nn=='H2'     then
  900.         do
  901.             yw = 3.72
  902.             if al == 'a' then call aufltief()
  903.         end
  904.         when nn=='B2'     then
  905.         do
  906.             yw = 3.72
  907.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  908.             call ppm_SetSize(20)
  909.             call ppm_TextIntoBox(box#id, 'f')
  910.         end
  911.  
  912.         when nn=='A#2'    then
  913.         do
  914.             yw = 3.82
  915.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  916.             call ppm_SetSize(20)
  917.             call ppm_TextIntoBox(box#id, 's')
  918.         end
  919.  
  920.         when nn=='A2'     then
  921.         do
  922.             yw = 3.82
  923.             if al == 'a' then call aufltief()
  924.         end
  925.         when nn=='AB2'    then nn = 'Ab2'
  926.         when nn=='Ab2'    then
  927.         do
  928.             yw = 3.82
  929.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  930.             call ppm_SetSize(20)
  931.             call ppm_TextIntoBox(box#id, 'f')
  932.         end
  933.  
  934.         when nn=='G#2'    then
  935.         do
  936.             yw = 3.92
  937.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  938.             call ppm_SetSize(20)
  939.             call ppm_TextIntoBox(box#id, 's')
  940.         end
  941.  
  942.         when nn=='G2'     then
  943.         do
  944.             yw = 3.92
  945.             if al == 'a' then call aufltief()
  946.         end
  947.         when nn=='GB2'    then nn = 'Gb2'
  948.         when nn=='Gb2'    then
  949.         do
  950.             yw = 3.92
  951.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  952.             call ppm_SetSize(20)
  953.             call ppm_TextIntoBox(box#id, 'f')
  954.         end
  955.  
  956.         when nn=='F#2'    then
  957.         do
  958.             yw = 4.02
  959.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  960.             call ppm_SetSize(20)
  961.             call ppm_TextIntoBox(box#id, 's')
  962.         end
  963.  
  964.         when nn=='F2'     then
  965.         do
  966.             yw = 4.02
  967.             if al == 'a' then call aufltief()
  968.         end
  969.         when nn=='E#2'    then
  970.         do
  971.             yw = 4.12
  972.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  973.             call ppm_SetSize(20)
  974.             call ppm_TextIntoBox(box#id, 's')
  975.         end
  976.  
  977.         when nn=='E2'     then
  978.         do
  979.             yw = 4.12
  980.             if al == 'a' then call aufltief()
  981.         end
  982.         when nn=='EB2'    then nn = 'Eb2'
  983.         when nn=='Eb2'    then
  984.         do
  985.             yw = 4.12
  986.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  987.             call ppm_SetSize(20)
  988.             call ppm_TextIntoBox(box#id, 'f')
  989.         end
  990.  
  991.         when nn=='D#2'    then
  992.         do
  993.             yw = 4.22
  994.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  995.             call ppm_SetSize(20)
  996.             call ppm_TextIntoBox(box#id, 's')
  997.         end
  998.  
  999.         when nn=='D2'     then
  1000.         do
  1001.             yw = 4.22
  1002.             if al == 'a' then call aufltief()
  1003.         end
  1004.         when nn=='DB2'    then nn = 'Db2'
  1005.         when nn=='Db2'    then
  1006.         do
  1007.             yw = 4.22
  1008.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  1009.             call ppm_SetSize(20)
  1010.             call ppm_TextIntoBox(box#id, 'f')
  1011.         end
  1012.  
  1013.         when nn=='C#2'    then
  1014.         do
  1015.             yw = 4.32
  1016.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  1017.             call ppm_SetSize(20)
  1018.             call ppm_TextIntoBox(box#id, 's')
  1019.         end
  1020.  
  1021.         when nn=='C2'     then
  1022.         do
  1023.             yw = 4.32
  1024.             if al == 'a' then call aufltief()
  1025.         end
  1026.         when nn=='H1'     then yw = 4.42
  1027.         when nn=='B1'     then
  1028.         do
  1029.             yw = 4.42
  1030.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  1031.             call ppm_SetSize(20)
  1032.             call ppm_TextIntoBox(box#id, 'f')
  1033.         end
  1034.  
  1035.         when nn=='A#1'    then
  1036.         do
  1037.             yw = 4.52
  1038.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  1039.             call ppm_SetSize(20)
  1040.             call ppm_TextIntoBox(box#id, 's')
  1041.         end
  1042.  
  1043.         when nn=='A1'     then
  1044.         do
  1045.             yw = 4.52
  1046.             if al == 'a' then call aufltief()
  1047.         end
  1048.         when nn=='AB1'    then nn = 'Ab1'
  1049.         when nn=='Ab1'    then
  1050.         do
  1051.             yw = 4.52
  1052.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  1053.             call ppm_SetSize(20)
  1054.             call ppm_TextIntoBox(box#id, 'f')
  1055.         end
  1056.  
  1057.         when nn=='G#1'    then
  1058.         do
  1059.             yw = 4.62
  1060.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  1061.             call ppm_SetSize(20)
  1062.             call ppm_TextIntoBox(box#id, 's')
  1063.         end
  1064.  
  1065.         when nn=='G1'     then
  1066.         do
  1067.             yw = 4.62
  1068.             if al == 'a' then call aufltief()
  1069.         end
  1070.         when nn=='GB1'    then nn = 'Gb1'
  1071.         when nn=='Gb1'    then
  1072.         do
  1073.             yw = 4.62
  1074.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  1075.             call ppm_SetSize(20)
  1076.             call ppm_TextIntoBox(box#id, 'f')
  1077.         end
  1078.  
  1079.         when nn=='F#1'    then
  1080.         do
  1081.             yw = 4.72
  1082.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  1083.             call ppm_SetSize(20)
  1084.             call ppm_TextIntoBox(box#id, 's')
  1085.         end
  1086.  
  1087.         when nn=='F1'     then
  1088.         do
  1089.             yw = 4.72
  1090.             if al == 'a' then call aufltief()
  1091.         end
  1092.  
  1093.         when nn=='E#1'    then
  1094.         do
  1095.             yw = 4.82
  1096.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  1097.             call ppm_SetSize(20)
  1098.             call ppm_TextIntoBox(box#id, 's')
  1099.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  1100.         end
  1101.  
  1102.         when nn=='E1' then
  1103.         do
  1104.             yw = 4.82
  1105.             if al == 'a' then call aufltief()
  1106.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  1107.         end
  1108.  
  1109.         when nn=='EB1'    then nn = 'Eb1'
  1110.         when nn=='Eb1'  then
  1111.         do
  1112.             yw = 4.82
  1113.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  1114.             call ppm_SetSize(20)
  1115.             call ppm_TextIntoBox(box#id, 'f')
  1116.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  1117.         end
  1118.  
  1119.         when nn=='D#1'  then
  1120.         do
  1121.             yw = 4.92
  1122.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  1123.             call ppm_SetSize(20)
  1124.             call ppm_TextIntoBox(box#id, 's')
  1125.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  1126.         end
  1127.  
  1128.         when nn=='D1'  then
  1129.         do
  1130.             yw = 4.92
  1131.             if al == 'a' then call aufltief()
  1132.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  1133.         end
  1134.  
  1135.         when nn=='DB1'    then nn = 'Db1'
  1136.         when nn=='Db1' then
  1137.         do
  1138.             yw = 4.92
  1139.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.27, 0.35, 0.75, 0)
  1140.             call ppm_SetSize(20)
  1141.             call ppm_TextIntoBox(box#id, 'f')
  1142.             call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  1143.         end
  1144.  
  1145.         when nn=='C#1'  then
  1146.         do
  1147.           yw = 5.02
  1148.             box#id = ppm_CreateBox(notex-0.24, yw+zz-0.15, 0.35, 0.75, 0)
  1149.             call ppm_SetSize(20)
  1150.             call ppm_TextIntoBox(box#id, 's')
  1151.           call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  1152.           call ppm_DrawLine(notex, zz+5.2, (notex+0.4), zz+5.2)
  1153.         end
  1154.  
  1155.         when nn=='C1'  then
  1156.         do
  1157.           yw = 5.02
  1158.             if al == 'a' then call aufltief()
  1159.           call ppm_DrawLine(notex, zz+5, (notex+0.4), zz+5)
  1160.           call ppm_DrawLine(notex, zz+5.2, (notex+0.4), zz+5.2)
  1161.         end
  1162.         otherwise
  1163.                do
  1164.                 call ppm_ClearStatus()
  1165.                 exit_msg("Da war ein Fehler")
  1166.                end
  1167.     end
  1168.  
  1169.         /* größe einer Notenbox */
  1170.  
  1171.         notewidht = 0.64
  1172.         noteheight = 0.97
  1173.  
  1174.  
  1175.         boxid = ppm_CreateBox(notex, yw+zz, notewidht, noteheight, 0)
  1176.         call ppm_SetSize(notepkt)
  1177.         call ppm_TextIntoBox(boxid, nw)
  1178.         notex = (notex + xw)
  1179.         if notex >=18.7 then
  1180.             do
  1181.               notex = 2.5
  1182.               zz = zz + 4
  1183.             end
  1184.      return
  1185. end
  1186. exit
  1187.  
  1188. auflhoch:
  1189. do
  1190.   Pbox = ppm_CreateBox(notex-0.34, yw+zz+0.07, 0.6, 1.2, 0)
  1191.   boxnm = ppm_DocNextBox(Pbox)
  1192.   call ppm_DeleteContents(boxnm)
  1193.   call ppm_ImportGraphic(boxnm, 'Genies:noten_pausen/Auflsng', Zeichen)
  1194.   return
  1195. end
  1196.  
  1197. aufltief:
  1198. do
  1199.   Pbox = ppm_CreateBox(notex-0.34, yw+zz-0.4, 0.6, 1.2, 0)
  1200.   boxnm = ppm_DocNextBox(Pbox)
  1201.   call ppm_DeleteContents(boxnm)
  1202.   call ppm_ImportGraphic(boxnm, 'Genies:noten_pausen/Auflsng', Zeichen)
  1203.   return
  1204. end
  1205.  
  1206. break_d:
  1207. break_e:
  1208. break_c:
  1209. halt:
  1210.     call exit_msg("User aborted Genie!")
  1211.  
  1212. exit_msg: procedure
  1213. do
  1214.     parse arg message
  1215.  
  1216.     if message ~= '' then
  1217.     call ppm_Inform(1,message,)
  1218.  
  1219.     call ppm_ClearStatus()
  1220.     call ppm_AutoUpdate(1)
  1221.     exit
  1222. end
  1223.